from django.contrib import admin
from . import models
from celery_tasks.html.tasks import generate_static_list_search_html


# Register your models here.
# admin.site.register(模型类, 站点管理器)
class GoodsCategoryAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        """
        钩子方法，在运营站点中编辑添加数据时，会自动执行代码
        :param request: 本次编辑添加数据时的请求对象
        :param obj: 本次编辑添加数据时的模型
        :param form: 本次编辑添加数据时表单系统对象
        :param change: 本次编辑添加数据时的改动的数据
        :return:
        """
        obj.save()  # 保存本次提交的操作
        generate_static_list_search_html.delay()

    def delete_model(self, request, obj):
        obj.delete()

        generate_static_list_search_html.delay()


class GoodsChannelAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        """
        钩子方法，在运营站点中编辑/添加数据时，会自动执行代码
        :param request: 本次编辑/添加数据时的请求对象
        :param obj: 本次编辑/添加数据时的模型对象
        :param form: 本次编辑/添加数据时表单系统对象
        :param change: 本次编辑/添加数据时的改动的数据
        """
        obj.save() # 保存本次提交的操作

        # 保存提交操作以后，执行异步任务
        generate_static_list_search_html.delay()

    def delete_model(self, request, obj):
        """
        钩子方法，在删除数据的时候自动执行
        :param request: 本次操作的请求对象
        :param obj: 本次操作的模型对象
        :return:
        """
        obj.delete()

        # 保存提交操作以后，执行异步任务
        generate_static_list_search_html.delay()

admin.site.register(models.GoodsCategory)
admin.site.register(models.GoodsChannel)
admin.site.register(models.Goods)
admin.site.register(models.Brand)
admin.site.register(models.GoodsSpecification)
admin.site.register(models.SpecificationOption)
admin.site.register(models.SKU)
admin.site.register(models.SKUSpecification)
admin.site.register(models.SKUImage)
